package com.visec.hdy.hadoop.standard;

import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

/**
 * FSB File System Base 文件系统基本操作接口类
 * 
 * @author hdy
 *
 */
public interface FSB {
	/**
	 * 创建文件
	 * 
	 * @param file
	 * @param inputStream
	 */
	void create(File file, InputStream inputStream);

	/**
	 * 创建文件
	 * 
	 * @param file
	 * @return
	 */
	OutputStream create(File file);

	/**
	 * 在文件后面追加内容
	 * 
	 * @param file
	 * @param inputStream
	 */
	void append(File file, InputStream inputStream);

	/**
	 * 在文件后面追加内容
	 * 
	 * @param file
	 * @return
	 */
	OutputStream append(File file);

	/**
	 * 删除文件
	 * 
	 * @param file
	 */
	boolean delete(File file, boolean isRecursion);

	/**
	 * 获取文件信息
	 * 
	 * @param file
	 */
	InputStream get(File file);

	/**
	 * 文件是否存在
	 * 
	 * @param file
	 * @return
	 */
	boolean isExist(File file);

	/**
	 * 获取目录下所有文件
	 * 
	 * @param folder
	 * @return
	 */
	List<File> listFiles(File file);

	/**
	 * 关闭文件系统
	 */
	void close();

	/**
	 * 列出目录下所有文件夹
	 * 
	 * @param path
	 * @return
	 */
	List<File> listDirs(File file);

	/**
	 * 列出目录下所有文件
	 * 
	 * @param file
	 * @return
	 */
	List<File> listAll(File file);
}
